package cn.com.twoke.easyproject.modules.system.domain;

import cn.com.twoke.easyproject.handler.mybatisplus.fill.BaseDOFillable;
import com.baomidou.mybatisplus.annotation.*;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.time.LocalDateTime;

/**
 * (SysRoute)表实体类
 *
 * @author TwoKe
 * @since 2025-06-08 02:50:24
 */
@Data
@Schema(description = "SysRoute")
@TableName("sys_route")
public class SysRoute implements BaseDOFillable {
    /**
     * 主键ID
     */
    @Schema(description = "主键ID")
    @TableId(value = "id", type = IdType.ASSIGN_ID)
    private Long id;
    /**
     * 父级ID
     */
    @Schema(description = "父级ID")
    @TableField(value = "parent_id")
    private Long parentId;
    /**
     * 在项目中的路径
     */
    @Schema(description = "在项目中的路径")
    @TableField(value = "path")
    private String path;
    /**
     * 路由名称
     */
    @Schema(description = "路由名称")
    @TableField(value = "route_name")
    private String routeName;
    /**
     * 组件位置
     */
    @Schema(description = "组件位置")
    @TableField(value = "component")
    private String component;
    /**
     * 路由重定向
     */
    @Schema(description = "路由重定向")
    @TableField(value = "redirect")
    private String redirect;
    /**
     * 菜单类型：1 目录 2 菜单 3 按钮
     */
    @Schema(description = "菜单类型：1 目录 2 菜单 3 按钮")
    @TableField(value = "menu_type")
    private String menuType;
    /**
     * 路由元数据：JSON格式
     */
    @Schema(description = "路由元数据：JSON格式")
    @TableField(value = "meta")
    private String meta;
    /**
     * 创建时间
     */
    @Schema(description = "创建时间")
    @TableField(value = "create_time", fill = FieldFill.INSERT)
    private LocalDateTime createTime;
    /**
     * 更新时间
     */
    @Schema(description = "更新时间")
    @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;
    /**
     * 创建用户
     */
    @Schema(description = "创建用户")
    @TableField(value = "create_user", fill = FieldFill.INSERT)
    private Long createUser;
    /**
     * 更新用户
     */
    @Schema(description = "更新用户")
    @TableField(value = "update_user", fill = FieldFill.INSERT_UPDATE)
    private Long updateUser;
    /**
     * 是否删除：0 未删除 1 已删除
     */
    @Schema(description = "是否删除：0 未删除 1 已删除")
    @TableField(value = "is_deleted", fill = FieldFill.INSERT)
    @TableLogic
    private Integer isDeleted;


}

